home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
041-050
/
amok48
/
module
/
txt
/
newinout.def
< prev
next >
Wrap
Text File
|
1993-11-04
|
7KB
|
173 lines
(**********************************************************************
:Program. NewInOut.def
:Contens. Ein Bibliotheksmodul für gepufferte Ein- und Ausgabe.
:Contens. Kompatibel zu InOut.
:Author. Bernd Braun
:Address. Lippestr. 11, D-3300 Braunschweig
:Phone. 0531/845498
:Copyright. Public Domain
:Language. Modula-2
:Translator. M2Amiga A+L V3.3d
:Support. Tooltype-Übergabe nach Amiga 12/89 S.86f. Andreas Görtler.
:History. V1.0 25.Sep.1989 Erste lauffähige Version
:History. V1.1 26.Apr.1990 Kosmetische Verbesserungen
:History. V1.2 26.Sep.1990 Tooltypeübergabe implementiert
***********************************************************************)
DEFINITION MODULE NewInOut;
IMPORT ASCII;
TYPE
FILE;
(* opaker Datentyp zur Unterstützung beliebiger DOS-Files. *)
Modus = ( ModeOld, ModeNew );
(* File-Modus für Open.
ModeOld: Eröffnen eines alten Files zum Lesen. Besteht es
schon wird es überschrieben.
ModeNew: Eröffnen eines neuen Files zum Lesen und Schreiben. *)
CONST
eol = ASCII.eol;
VAR
done : BOOLEAN;
(* TRUE, wenn letzte Operation erfolgreich. FALSE, sonst. *)
stdin, stdout : FILE;
(* Standart Ein- und Ausgabe-Files. *)
waitCloseGadget : BOOLEAN;
(* Aus Kompatibilitatsgründen zum Modul Terminal. *)
(* Öffnen eines beliebigen Amiga-DOS Files. *)
PROCEDURE Open ( Datei : ARRAY OF CHAR; modus : Modus ) : FILE;
(* Öffnen eines neuen Ausgabefiles anstelle stdout. In Datei steht das
zu öffnende Amiga-DOS File. Ist Datei leer wird ein Filename per
Tastatur angefragt.
Änderung gegenüber InOut:
- In Datei darf keine Extention wie '.mod' stehen sondern der
Dateiname oder ein Leerstring.
- Der Dateiname kann vorher ggf. mit ReadString eingegeben
werden. *)
PROCEDURE OpenOutput ( Datei : ARRAY OF CHAR );
(* Öffnen eines neuen Ausgabefiles anstelle stdin. In Datei steht das
zu öffnende Amiga-DOS File. Ist Datei leer wird ein Filename per
Tastatur angefragt.
Änderung gegenüber InOut:
- In Datei darf keine Extention wie '.mod' stehen sondern der
Dateiname oder ein Leerstring.
- Der Dateiname kann vorher ggf. mit ReadString eingegeben
werden. *)
PROCEDURE OpenInput ( Datei : ARRAY OF CHAR );
(* Schließen eines geöffneten Files. *)
PROCEDURE Close ( file : FILE );
(* Schließen eines geöffneten Ausgabefiles und Wiedereinsetzen von
stdout. *)
PROCEDURE CloseOutput;
(* Schließen eines geöffneten Eingabefiles und Wiedereinsetzen von
stdin. *)
PROCEDURE CloseInput;
(* Rückgabe eines Zeichens aus stdin mit Hilfe von ReadFile. *)
PROCEDURE Read ( VAR c : CHAR );
(* Schreiben eines Zeichens in stdout mit Hilfe von WriteFile. *)
PROCEDURE Write ( c : CHAR );
(* Schreiben einer neuen Zeile in stdout mit Hilfe von WriteLnFile. *)
PROCEDURE WriteLn;
(* Schreiben einer neuen Zeile in File mit Hilfe von WriteFile. *)
PROCEDURE WriteLnFile ( file : FILE );
(* Rückgabe des ersten Zeichens im Eingabepuffer. Ist er leer werden
neue Zeichen aus file gelesen und im Eingabepuffer gespeichert. *)
PROCEDURE ReadFile ( file : FILE; VAR c : CHAR );
(* Speichern eines Zeichens im Ausgabepuffer von file. Ist er voll
werden alle Zeichen im Ausgabepuffer in file geschrieben. *)
PROCEDURE WriteFile ( file : FILE; c : CHAR );
(* Schreiben eines String in stdout mit Hilfe von WriteStringFile. *)
PROCEDURE WriteString ( Text : ARRAY OF CHAR );
(* Schreiben eines Strings in file. *)
PROCEDURE WriteStringFile ( file : FILE; Text : ARRAY OF CHAR );
(* Eingabe eines Strings aus file. *)
PROCEDURE ReadString ( VAR Text : ARRAY OF CHAR );
(* Eingabe eines Strings aus stdin mit Hilfe von ReadStringFile. *)
PROCEDURE ReadStringFile ( file : FILE; VAR Text : ARRAY OF CHAR );
(* Schreiben aller Zeichen im Output-Puffer in file. *)
PROCEDURE FlushOutput ( file : FILE );
(* Eingabe eines Cardinal aus stdin mit Hilfe von ReadCardFile. *)
PROCEDURE ReadCard ( VAR Card : CARDINAL );
(* Eingabe eines Cardinal aus file. *)
PROCEDURE ReadCardFile ( file : FILE; VAR Card : CARDINAL );
(* Eingabe eines LongCardinal aus stdin mit Hilfe von ReadCardFile. *)
PROCEDURE ReadLongCard ( VAR Card : LONGCARD );
(* Eingabe eines LongCardinal aus file. *)
PROCEDURE ReadLongCardFile ( file : FILE; VAR Card : LONGCARD );
(* Eingabe eines Integer aus stdin mit Hilfe von ReadCardFile. *)
PROCEDURE ReadInt ( VAR Int : INTEGER );
(* Eingabe eines Integer aus file. *)
PROCEDURE ReadIntFile ( file : FILE; VAR Int : INTEGER );
(* Eingabe eines LongInteger aus stdin mit Hilfe von ReadCardFile. *)
PROCEDURE ReadLongInt ( VAR Int : LONGINT );
(* Eingabe eines LongInteger aus file. *)
PROCEDURE ReadLongIntFile ( file : FILE; VAR Int : LONGINT );
(* Schreiben eines Cardinal oder LongCardinal in stdout mit der
Feldbreite Feld mit Hilfe von WriteCardFile.
Ist Feld positiv rechtsbündig, bei negativ linksbündig.*)
PROCEDURE WriteCard ( Card : LONGCARD; Feld : INTEGER );
(* Schreiben eines Cardinal oder LongCardinal in file mit der
Feldbreite Feld.
Ist Feld positiv rechtsbündig, bei negativ linksbündig.*)
PROCEDURE WriteCardFile ( file : FILE;
Card : LONGCARD;
Feld : INTEGER );
(* Schreiben eines Integer oder LongInteger in stdout mit der
Feldbreite Feld mit Hilfe von WriteCardFile.
Ist Feld positiv rechtsbündig, bei negativ linksbündig.*)
PROCEDURE WriteInt ( Int : LONGINT; Feld : INTEGER );
(* Schreiben eines Integer oder LongInteger in file mit der
Feldbreite Feld.
Ist Feld positiv rechtsbündig, bei negativ linksbündig.*)
PROCEDURE WriteIntFile ( file : FILE;
Int : LONGINT;
Feld : INTEGER );
(* Schreiben eines Cardinal oder LongCardinal als HexZahl in stdout
mit der Feldbreite Feld mit Hilfe von WriteHexFile.
Ist Feld positiv rechtsbündig, bei negativ linksbündig.*)
PROCEDURE WriteHex ( Hex : LONGCARD; Feld : INTEGER );
(* Schreiben eines Cardinal oder LongCardinal als HexZahl in file mit
der Feldbreite Feld.
Ist Feld positiv rechtsbündig, bei negativ linksbündig.*)
PROCEDURE WriteHexFile ( file : FILE;
Hex : LONGCARD;
Feld : INTEGER );
END NewInOut.